//今天发现网络代码进行测试，发现很多时候不能单纯靠洛谷给出的提交时
//间，因为网络波动并不准确

#include<iostream>
#include <ctime>
using namespace std;
int ret=0;
void dfs1(int n,int k,int m)
{
	for(int i=m;i<=n;i++)
	{
		if(k==1&&n==i)
		{
			ret++;
			return;
		}
		if(n-i<0) return;
		if(k==0) return;
		if(k*i>n) return;
		dfs1(n-i,k-1,i);
	}
}
void dfs2(int n,int k,int m)
{

	for(int i=m;i<=n;i++)
	{
		if(k==1&&n==i)
		{
			ret++;
			return;
		}
		if(n-i<0) return;
		if(k==0) return;
		dfs2(n-i,k-1,i);
	}
}
int main()
{
	int n,k;
	// cin>>n>>k;
	n=200;
	k=6;
	clock_t start, end;
    double cpu_time_used;
	start = clock();  // 开始计时
    
    // 这里放你要测试的代码
    for(int i = 0; i < 10; i++) {
    	dfs1(n,k,1);
    }
    
    end = clock();  // 结束计时
    
    cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
    
    printf("执行时间: %f 秒\n", cpu_time_used);
    printf("执行时间: %f 毫秒\n", cpu_time_used * 1000);
    ret=0;
    start = clock();  // 开始计时
    
    // 这里放你要测试的代码
    for(int i = 0; i < 10; i++) {
    	dfs2(n,k,1);
    }
    
    end = clock();  // 结束计时
    
    cpu_time_used = ((double) (end - start)) / CLOCKS_PER_SEC;
    
    printf("执行时间: %f 秒\n", cpu_time_used);
    printf("执行时间: %f 毫秒\n", cpu_time_used * 1000);
    return 0;
}